<p>将一个集合作为参数传递给该集合自己的方法要么是错误（原意是其他参数），要么就是毫无意义的代码。</p>
<p>此外，因为某些方法要求参数在执行期间保持不变，因此自身的集合可能导致未定义的行为。</p>

<h2>不规范的代码示例</h2>
<pre>
List &lt;Object&gt; objs = new ArrayList&lt;Object&gt;();
  objs.add("Hello");

  objs.add(objs); // 不合规；如果objs.hashCode()被调用，则发生StackOverflowException
  objs.addAll(objs); // 不合规；行为未定义
  objs.containsAll(objs); // 不合规；永远是true
  objs.removeAll(objs); // 不合规；使用clear（）代替
  objs.retainAll(objs); // 不合规
</pre>
